\subsection{Исходный код}

\lstinputlisting[language=Pascal]{task1.pas}

\newpage
\subsection{Пояснения}

\begin{table}[h]
  \begin{tabular}{|c|c|c|} \hline
    \textbf{Функция} & \textsf{Назначение} & \textsf{тип} \\ \hline
    f(i) & Вычисление по формуле \hfill \newline $x=i^2+i+17$ & целый \\ \hline
    IsPrime(x) & Проверка наличия у числа $x$ нетривиальных множителей & булевый \\ \hline
  \end{tabular}
  \caption{Функции}
  \label{f_1}
\end{table}

\begin{table}[h]
  \begin{tabular}{|c|c|c|} \hline
    \textbf{Переменная:тип} & \textsf{Назначение} & \textsf{Локальная?} \\ \hline
    i:integer & возможный множитель x & да \\ \hline
    y:real & максимальный множитель x & да \\ \hline
    x:integer & проверяемое число & да \\ \hline
    s:boolean & флаг наличия нетривиального множителя & да \\ \hline
  \end{tabular}
  \caption{Переменные IsPrime(x)}
  \label{v_1}
\end{table}

Список функций и переменных предоставлен в таблицах~\ref{f_1}~и~\ref{v_1}

Следует отметить, что процесс поиска нетривиальных множителей явно не оптимизирован до конца - идёт перебор всех целых от 2 (наименьший нетривиальный множитель) до $\lfloor \sqrt{x}\rfloor$, который, очевидно, является самым большим простым множителем. Вообще говоря числа в условии небольшие ($\sqrt{15^2+15+17}\approx16$), да и задачи найти самый быстрый алгоритм не сто\'{и}т, так что считаю возможным без выяснения обстоятельств оставить данный алгоритм как решение поставленной задачи.

\subsection{Вывод программы}

17 - простое (i = 0)\\
19 - простое (i = 1)\\
23 - простое (i = 2)\\
29 - простое (i = 3)\\
37 - простое (i = 4)\\
47 - простое (i = 5)\\
59 - простое (i = 6)\\
73 - простое (i = 7)\\
89 - простое (i = 8)\\
107 - простое (i = 9)\\
127 - простое (i = 10)\\
149 - простое (i = 11)\\
173 - простое (i = 12)\\
199 - простое (i = 13)\\
227 - простое (i = 14)\\
257 - простое (i = 15)\\
\\
все i проверены - утверждение верно
